﻿#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
#include <limits.h>
/*
C语言语句和分类
- 空语句
- 表达式语句
- 函数调用语句
- 复合语句
- 控制语句
*/

// 1. 空语句
//int main()
//{
//	;//空语句
//	return 0;
//}

// 2. 表达式语句
//int main()
//{
//	int a = 20;
//	int b = 5;
//	b = a + 5;
//	printf("%d\n", b);
//	return 0;
//}

// 3.函数调用语句
int Add(int x, int y)
{
	return x + y;
}

//int main()
//{
//	printf("hehe\n");
//	int ret = Add(2, 3);
//	printf("%d\n", ret);
//	return 0;
//}

// 4.复合语句
void print(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}
}

//int main()
//{
//	int i = 0;
//	int arr[10] = { 0 };
//	for (i = 0; i < 10; i++) //for循环的循环体的⼤括号中的就是复合语句
//	{
//	 arr[i] = 10 - i;
//	 printf("%d\n", arr[i]);
//	}
//	return 0;
//}

#include <stdbool.h>

//int main()
//{
//	_Bool flag = true;
//	bool falg2 = false;
//
//	if (flag)
//	{
//		printf("hehe\n");
//	}
//	return 0;
//}

// sizeof 是一个关键字也是操作符，专门用来计算sizeof的操作符数的类型长度的，单位是字节
// sizeof 操作符的操作数可以是类型，也可以是变量或者表达式

//int main()
//{
//	int a = 10;
//	printf("%zd\n", sizeof(a));// 4
//	printf("%zd\n", sizeof a);// 4, a是变量的名字，可以省略掉sizeof后边的()
//	printf("%zd\n", sizeof(int));//4 
//	printf("%zd\n", sizeof(3 + 3.5));// 4
//
//	return 0;
//}

// 数据类型长度
//int main()
//{
//	printf("%zd\n", sizeof(char));// 1
//	printf("%zd\n", sizeof(_Bool));// 1
//	printf("%zd\n", sizeof(short));// 2
//	printf("%zd\n", sizeof(int));// 4
//	printf("%zd\n", sizeof(long));// 4
//	printf("%zd\n", sizeof(long long));// 8
//	printf("%zd\n", sizeof(float));// 4
//	printf("%zd\n", sizeof(double));// 8
//	printf("%zd\n", sizeof(long double));// 8
//	return 0;
//}

// sizeof中表达式不计算
//int main()
//{
//	short s = 2;
//	int b = 10;
//	printf("%zd\n", sizeof(s = b + 1));	// 2
//	printf("%d\n", s);// 2
//	return 0;
//}

// signed 和 unsigned int, signed int == int
//int main()
//{
//	// signed int 等同于 int 
//	signed int num = 0;
//	num = -200;
//	printf("%d\n", num);
//
//	// unsigned int
//	unsigned int num1 = 0;
//	unsigned num2 = 0;
//	num1 = 100;
//	num2 = 200;
//	printf("%d\n", num1);
//	printf("%d\n", num2);
//	return 0;
//}
//

// 对于有符号的整数打印应该使用%d
// 对于无符号的整数打印应该使用%u
//int main()
//{
//	int num = -100;
//	printf("%u\n", num);// 4294967196
//	printf("%d\n", num);// 	-100
//	return 0;
//}

// signed char 和 unsigned char
//int main() {
//    signed char c1;
//    unsigned char c2;
//
//    c1 = -100;   // 合法：赋值为 -100
//    c2 = 100;    // 合法：赋值为 100
//
//    printf("c1 = %d\n", c1);  // 使用 %d 输出整数值
//    printf("c2 = %d\n", c2);  // 注意：%c 输出字符，%d 输出整数
//
//    char ch = 'A';
//    printf("%d\n", ch);  // 输出 65
//    return 0;
//}

//变量初始化
//int main()
//{
//	int age = 18;
//	char ch = 'w';
//	double weight = 48.0;
//	unsigned int weight = 100;
//	return 0;
//}

// 全局变量和局部变量
int num = -100;	// 全局变量

//int main()
//{
//	// 局部变量
//	unsigned int age = 10;
//	age = 20;
//	printf("%u\n", age);
//	char ch = 'q';
//	float score = 3.14f;
//	double weight = 4.5;
//	bool flag = true;
//
//	printf("%d", num);
//	return 0;
//}

//int main()
//{
//	{
//		int num = 10;
//		printf("%d\n", num);
//	}
//	printf("%d\n", num);//err
//
//	return 0;
//}

int m = 1000;

//int main()
//{
//	int m = 100;
//	printf("%d\n", m);//局部优先
//
//	return 0;
//}

//int main()
//{
//	//printf("%d\n", 33 + 42);
//	int a = 10;
//	int b = 20;
//	printf("%d\n", a + b);// 打印表达式的值
//	printf("%d\n", a + 23);
//
//	return 0;
//}

// 算术操作符: + - * / %
// 双目操作符: + - * / %

// +、-
//int main()
//{
//	int x = 4 + 22;
//	int y = 61 - 23;
//	printf("%d\n", x);
//	printf("%d\n", y);
//	return 0;
//}

// *
//int main()
//{
//	int num = 5;
//	printf("%d", num * num);
//	return 0;
//}


// /除法
//int main()
//{
//	float x = 6 / 4;
//	int y = 6 / 4;
//	printf("%f\n", x);
//	printf("%d\n", y);
//	return 0;
//
//}

//如果希望得到一个浮点数，两个运算数必须至少有一个浮点数
//int main()
//{
//	float x = 6 / 4;
//	float y = 6.0 / 4;
//	printf("%.3f\n", x);// 输出1.0
//	printf("%.3f\n", y);// 输出1.5
//	return 0;
//}

//int main()
//{
//	int score = 5;
//	score = (score / 20) * 100;	// 输出0，相当于0*100
//	printf("%d\n", score);
//	return 0;
//}

//int main()
//{
//	int score = 5;
//	score = (score / 20.0) * 100;	// 输出25
//	printf("%d\n", score);
//	return 0;
//}

/* % 取余运算 */
//int main()
//{
//	int x = 6 % 4;
//	printf("%d\n", x);// 输出2
//	return 0;
//}

/* 赋值运算符 */
// 连续赋值
//int main()
//{
//	int a = 100;
//	int b = 5;
//	int c = 0;
//	c = b = a + 3;// 连续赋值，从右向左依次赋值
//}

// 复合赋值符
//int main()
//{
//	int a = 2;
//	a += 3;
//	a -= 2;
//	a *= 4;
//	printf("%d\n", a);
//	return 0;
//}


/* 7.单目运算符 */
// ++和--
// 前置++和后置++
// 前置--和后置--

// 前置++, 先+1后使用
//int main()
//{
//	int a = 18;
//	int b = ++a;
//	printf("a=%d, b=%d\n", a, b);// a=19, b=19
//	return 0;
//}

// 后置++, 先使用后+1
//int main()
//{
//	int a = 18;
//	int b = a++;
//	printf("a=%d, b=%d\n", a, b);// a=19, b=18
//	return 0;
//}

// 前置--
//int main()
//{
//	int a = 10;
//	int b = --a;//--的操作数是a，是放在a的前面的，就是前置-- 
//	printf("a=%d b=%d\n",a , b);//输出的结果是：9 
//}

// 后置--
//int main()
//{
//	int a = 10;
//	int b = a--;//--的操作数是a，是放在a的后面的，就是后置-- 
//	printf("a=%d b=%d\n",a , b);//输出的结果是：9, 10 
//}

/* +和-都是单目操作符 */
//int main()
//{
//	int a = -10;
//	printf("%d\n", +10);// 10
//	printf("%d\n", +a);// -10
//	printf("%d\n", 10);// 10
//
//	return 0;
//}

//int main()
//{
//	int a = -10;
//	printf("%d\n", -10);// -10
//	printf("%d\n", -a);// 10
//	printf("%d\n", 10);// 10
//
//	return 0;
//}

// 强制类型转换
//int main()
//{
//	int a = (int)3.14;
//	
//	printf("%d\n", a);
//	//int b = int(3.14);//err
//	return 0;
//}

/* scanf和printf介绍 */
// printf格式化输出
//int main()
//{
//	printf("Hello World\n");
//	printf("Hello\n");
//	printf("World\n");
//	return 0;
//}

// 占位符
//int main()
//{
//	printf("There are %d apples\n", 3);// %d整数占位符
//	printf("%s will come tonight\n", "zhangsan");// %s字符串占位符
//	printf("%s says it is %d o'clock\n", "lisi", 21);// %s字符串占位符
//	return 0;
//}

// 限定宽度
//int main()
//{
//	printf("%5d\n", 123);// 默认是右对齐，输出"  123"，不满5位前面会添加空格
//	printf("%-5d\n", 123);// 左对齐，输出"123  "，不满5位前面会添加空格
//
//	printf("%12f\n", 123.45);// 输出"  123.450000"，%12f代表浮点数最少占据12位，小数点后默认为6位
//	return 0;
//}

// 总是显示正负号
//int main()
//{
//	printf("%+d\n", 12);// 输出 +12
//	printf("%+d\n", -12);// 输出 -12
//	return 0;
//}

// 限定小数位数
//int main()
//{
//	printf("Number is %.2f\n", 0.5);// 0.50
//	printf("Number is %6.2f\n", 0.5);// "  0.50"
//
//	// 最小宽度和小数位数这两个限定值，都可以用 * 代替，通过 printf() 的参数传入。
//	printf("Number is %*.*f\n", 6, 2, 0.5);// "  0.50"
//
//	return 0;
//}

// 输出部分字符串
//int main()
//{
//	printf("%.5s\n", "hello world");// hello
//	return 0;
//}

/* scanf基本用法 */

//int main()
//{
//	int score = 0;
//	printf("请输入成绩:");
//	scanf("%d", &score);
//	printf("成绩是：%d\n", score);
//	return 0;
//
//}

// 一次将键盘读入多个变量
//int main()
//{		// 输入
//		// 1
//		//-20
//		// 3.4
//		//-4.0e3
//	int i = 0, j = 0;
//	float x = 0.0f, y = 0.0f;
//	scanf("%d%d%f%f", &i, &j, &x, &y);
//	printf("i = %d, j = %d, x = %f, y = %f", i, j, x, y);// 输出: i = 1, j = -20, x = 3.400000, y = -4000.000000
//
//	return 0;
//}

//int main()
//{
//	int x;
//	float y;
//	
//	// 用户输入: "    -13.45e12# 0"
//	scanf("%d", &x);
//	printf("%d\n", x);// -13
//	scanf("%f", &y);
//	printf("%f\n", y);// 449999994880.000000
//	return 0;
//}


// scanf可以连续处理多个占位符
//int main()
//{
//	int x;
//	float y;
//	
//	// 用户输入: "    -13.45e12# 0"
//	scanf("%d%f", &x, &y);
//	printf("%d\n", x);// -13
//	printf("%f\n", y);// 449999994880.000000
//	return 0;
//}


// scanf的返回值是一个整数，表示成功读取的变量个数
//int main()
//{
//	int a = 0;
//	int b = 0;
//	float f = 0.0f;
//	int r = scanf("%d %d %f", &a, &b, &f);// 1 2 3.14
//	printf("a=%d b=%d f=%f\n", a, b, f);// 	a = 1 b = 2 f = 3.140000
//	printf("r=%d\n", r);// r = 3
//	return 0;
//}

// CRTL + Z 提前结束输入
//int main()
//{
//	int a = 0;
//	int b = 0;
//	float f = 0.0f;
//	int r = scanf("%d %d %f", &a, &b, &f);// 1 2 3.14
//	printf("a=%d b=%d f=%f\n", a, b, f);// 	a = 1 b = 2 f = 3.140000
//	printf("r=%d\n", r);// r = 3
//	return 0;
//}

// scanf读取字符
//int main()
//{
//	char name[11];
//	scanf("%10s", name);// abcdefghij，留一个位置给\0字符
//	printf("%s\n", name);// abcdefghij
//
//	return 0;
//}

// 赋值忽略符
int main()
{
	int year = 0;
	int month = 0;
	int day = 0;
	scanf("%d-%d-%d", &year, &month, &day);
	printf("%d-%d-%d\n", year, month, day);

	scanf("%d%*c%d%*c%d", &year, &month, &day);
	printf("%d-%d-%d\n", year, month, day);
	return 0;
}